ANS Compiler Synergy Infotech Pvt. Ltd. C Compiler Software India
 
|
|
|
|
 
C Compiler Software India



SynChro

ASN.1 COMPILER


Print Now


Synergy Infotech ASN.1 Compiler

Many of us would have heard about ASN.1 Compilers. The questions that comes to mind are : What is ASN.1? What is the role of ASN.1 Compilers? Where they are used? and many more questions.

An one liner about compilers is "A program that translates source code into target code". So ASN.1 Compiler means, a program that translates ASN.1 language into any programming language like C, C++, Java.

Introduction to ASN.1

Let us have a overview of ASN.1 and ASN.1 Compiler. There are lot many things to explain about ASN.1 Compiler. But here we will try to get the basic details about them.

One of the fundamental problems faced by the users communicating with different systems is the efficient transfer of data in such a way that the data received is the same data transmitted. ASN.1 (Abstract Syntax Notation One) is a flexible notation that allows one to define variety data types, from simple types such as integers and bit strings to structured types such as sets and sequences, as well as complex types defined in terms of others. ASN.1 is a formal notation that allows specifications of information handled by high level telecom protocols with no loss of generality, regardless of software or hardware systems. ASN.1 is a well established technology that is widely used for the ITU-T (International Telecommunication Union) specification and ISO communication protocol, for definition of abstract syntax's.

The purpose of ASN.1 is to have a standardized and platform independent language to express types with and to have a standardized set of rules for the transform of values of a defined type, into a stream of bytes. This stream of bytes can then be sent on a communication channel set up by the lower layers in the stack of communication protocols. This way two different applications written in two completely different programming languages running on different computers with different internal representation of data can exchange instances of structured data types instead of exchanging bytes or even worse bits. This eases the programmer from a great deal of work since no code has to be written to process the transport format of the data.

ASN.1 provides the ability to describe the information that will be exchanged independent of the way that information is represented on each of the communicatingsystems. The encoding rules like BER, PER, XER, DER, describes how to represent or encode values of each ASN.1 type in terms of bits or byte streams.

ASN.1 provides application and protocol developers a high level tool, essentially a data definition language, for defining protocol syntax and the information that an application exchanges between systems. ASN. 1 is also increasingly being used outside the telecommunication industry in areas such as security, transportation, banking and business specifications.

The application can exchange different messages. The abstract syntax would then describe in a more condensed way the whole set of these messages. For this, the abstract syntax is defined by means of a grammar that data to be transferred should respect. It is well known that data information is crucial, especially for linguistic exchanges at first and then for developing a business.

A concrete syntax is the representation, in a given programming language, of the data structures to be transferred. It is called concrete because it is actually handled by applications and it complies with the machine architectures' restrictions. The data structures to be transmitted should be described regardless of the programming languages. These are known as abstract syntax's. This abstract syntax is called as Abstract syntax Notation or ASN.

ASN.1 offers:

  • A simple notation for abstract syntax definition, independent of the of transfer syntax (encoding or decoding)
  • ASN.1 is being increasingly being used outside the telecommunication industry. ASN.1 is catching the areas biometrics, that is identity verification on physiological or behavioral characteristics, such as fingerprints, handwriting, transportation, banking.
  • The abstract syntax definition can be easily mapped to C, C++, Java, on a very wide range of platforms. Hence provides  rapid development of implementations incorporating much reusable and bug free code. Without having ASN.1 compilers, the abstract syntax's has to be mapped to any of the programming languages (manually), which results in bugs and lot of effort on testing the written encoders/ decoders.

More about ASN.1 Compiler

An ASN.1 Compiler accepts an ASN.1 specification and generates the target code in C, C++ or Java. The target code contains the data structure to transfer the syntax values, by applying the Transfer syntax rules underlined by ITU-T. The transfer syntax rules are BER, PER, which are incorporated in library and has to be linked with the target code and an application. The application should populate the data structures generated.

The generated code (target code) need not be compiled all the time. It needs to be compiled only when the ASN.1 specification is changed. The application can send different data each time, the library will take care of sending or receiving (encoding or decoding) them.

Conclusion

In summary, both the systems use the same syntax, but may use different architecture to transfer the messages. Hence, ASN.1 is an internationally standardized, vendor independent, platform independent and language independent notation for specifying data structures at a high level of
abstraction.

References

ITU-T standards :
  • X.680
  • X.681
  • X.682
  • X.683
  • X.690
  • X.691
  • ASN.1 Book (Communication between heterogeneous
    systems, by Olivier Dubuisson
   
Print Now

 Disclaimer  |   Privacy Policy   |   Webmaster   |   Resources
© 2005 Synergy Infotech. All Rights Reserved.-